home *** CD-ROM | disk | FTP | other *** search
- /********************************************************************
- * 1.00*
- * XAES: Active redrawing of windows and elements *
- * By Ken Hollis *
- * *
- * Copyright (C) 1994, Bitgate Software *
- * *
- * These routines are 100% WinX compatible. AES has a really hard *
- * time keeping up with the correct redraw tables. Unfortunately, *
- * I have not yet put these routines in to counter its problem. *
- * Wait for a later release for this problem to be cleared. *
- * *
- ********************************************************************/
-
- #include "xaes.h"
-
- #ifdef __TURBOC__
- #pragma warn -pia
- #pragma warn -sus
- #endif
-
- /*
- * Handle the active redrawing of a window. These are for custom
- * windows only. Yes, these too could be optimized, but I don't
- * have the time to sit down and optimize them right now. ^_^
- */
- void WHandleActiveDrag(WINDOW *win)
- {
- int initialx, initialy, lx, ly, button, d;
- EVENT event;
-
- graf_mkstate(&initialx, &initialy, &button, &d);
-
- initialx -= win->size.g_x;
- initialy -= win->size.g_y;
- lx = ly = 0;
-
- event.ev_mbclicks = 0x0001;
- event.ev_bmask = event.ev_mbstate = 1;
-
- do {
- int message;
-
- event.ev_mflags = MU_MESAG | MU_BUTTON | MU_TIMER;
- event.ev_mtlocount = event.ev_mthicount = 0;
-
- message = EvntMulti(&event);
- graf_mkstate(&d, &d, &button, &d);
-
- if (message & MU_MESAG) {
- WINDOW *tempwin;
-
- switch(*event.ev_mmgpbuf) {
- case WM_REDRAW: /* Handle window messages */
- if (tempwin = WFindHandle(event.ev_mmgpbuf[3]))
- WMsgWindow(tempwin, event.ev_mmgpbuf);
-
- WMoveWindow(win, -1, -1, -1, -1);
- break;
- }
- }
-
- if ((event.ev_mmox != lx) || (event.ev_mmoy != ly)) {
- lx = event.ev_mmox;
- ly = event.ev_mmoy;
-
- if ((event.ev_mmoy - initialy) < desk.g_y)
- WMoveWindow(win, (event.ev_mmox - initialx),
- desk.g_y, win->size.g_w,
- win->size.g_h);
- else
- WMoveWindow(win, (event.ev_mmox - initialx),
- (event.ev_mmoy - initialy), win->size.g_w,
- win->size.g_h);
- }
- } while(button);
- }